package com.xbongbong.paas.pojo.dto;

import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.paas.toolbox.wrap.QueryIgnore;
import com.xbongbong.pro.formdata.pojo.SaasSpecialParamPojo;
import com.xbongbong.pro.formexplain.pojo.DefaultLinkInfoPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotNull;

/**
 * @author: wufeng
 * @date: 2018/9/12 15:43
 * @desrcption: 新建返回字段和数据（流水号等）信息
 */
@Getter
@Setter
@ToString
public class FormDataAddGetDTO extends BaseDTO {

    private static final long serialVersionUID = -7601770202994348927L;

    /**
     * 应用id
     */
    @NotNull(message = "{dto.msg.formDataAddGet.appId.NotNull}")
    private Long appId;

    /**
     * 菜单id
     */
    @NotNull(message = "{dto.msg.formDataAddGet.menuId.NotNull}")
    private Long menuId;

    /**
     * 表单id
     */
    private Long formId;

    /**
     * SaaS标志
     *
     * @see com.xbongbong.pro.enums.SaasMarkEnum
     */
    @NotNull(message = "saasMark {javax.validation.constraints.NotNull.message}")
    private Integer saasMark;

    /**
     * SaaS业务类型，详见
     *
     * @see com.xbongbong.saas.enums.XbbRefTypeEnum
     */
    private Integer businessType;

    /**
     * SaaS子业务类型，详见
     *
     * @see com.xbongbong.saas.enums.XbbRefTypeEnum
     */
    private Integer subBusinessType;

    private SaasSpecialParamPojo saasSpecialParamPojo;

    /**
     * 默认的关联数据
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private DefaultLinkInfoPojo defaultLinkInfo;

    /**
     * 用于区分业务、做判断的业务类型,现在主要用于资金应收款和红冲应收款业务区分
     * @see com.xbongbong.saas.enums.XbbRefTypeEnum
     *
     */
    private Integer differenceBusinessType;

    /**
     * 是否获取关联数据自定义默认值
     */
    private Boolean customDefault;
}
